package com.neusoft.util;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class MyUtil {
	/**
	 * log4j日志对象
	 */
	public static Log logRootLogger = LogFactory.getLog("rootLogger");
	
	/**
	 * 判定对象是否为null或空
	 * @param obj
	 * 			被判定的对象
	 * @return 判定结果（true:不为null且不为空；false:为null或空）
	 * 		
	 */
	public static boolean isNotNVLOrEmpty(Object obj) {
		boolean is_re = false;
		if(obj != null && !obj.equals("")) {
			is_re = true;
		}
		return is_re;
	}
	/**
	 * 通过泛型和反射机制获取实例对象
	 * @param clazz
	 * 			class文件
	 * @return 实例对象
	 */
	public static <T> T getInstance(Class<T> clazz) {
		T tClazz = null;
		try {
			tClazz = clazz.newInstance();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return tClazz;
	}
	/**
	 * 将字符串转换为integer类型
	 * @param str
	 * 			被转换的字符串
	 * @return	转换之后的值
	 */
	public static Integer coverStr2Integer(String str) {
		Integer val = null;
		try {
			val = Integer.parseInt(str);
		} catch (Exception e) {
			MyUtil.logRootLogger.info("数据类型转换异常："+e.getMessage());
		}
		
		return val;
	}
	/**
	 * 将时间字符串转换为时间对象(如果转换失败，则返回null)
	 * 
	 * @param strDate
	 *            时间字符串
	 * @param pattern
	 *            时间字符串strDate的格式
	 * @return 转换的时间对象
	 */
	public static Date convertString2Date(String strDate, String pattern) {
		// 默认返回值
		Date date = null;
		// Date date = new Date();
		try {
			if (isNotNVLOrEmpty(date)) {
				// 创建一个date的格式化类
				SimpleDateFormat sdf = new SimpleDateFormat(pattern);
				// 将date转换为指定格式的字符串
				date = sdf.parse(strDate);
			}
		} catch (Exception e) {
			// 转换失败，返回默认值
			System.out.println("字符串转换时间对象失败，返回null值");
		}
		// 返回
		return date;
	}

	/**
	 * Date转换为字符串
	 * 
	 * @param date
	 *            被转换的Date类型
	 * @param pattern
	 *            转换的目标字符串的格式
	 * @return 转之后的字符串
	 */
	public static String convertDate2String(Date date, String pattern) {
		// 设定默认格式
		if (pattern == null || pattern.equals("")) {
			pattern = "yyyy-MM-dd";
		}
		String strDate = null;
		if (date != null) {
			// 创建一个date的格式化类

			SimpleDateFormat sdf = new SimpleDateFormat(pattern);
			// 将date转换为指定格式的字符串

			strDate = sdf.format(date);
		}
	
		// 返回
		return strDate;
	}
	
}
